package org.liang.code.rabbitMQ.utils;

import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;

import java.io.IOException;
import java.util.concurrent.TimeoutException;

/**
 * RabbitUtils 类用于创建和管理 RabbitMQ 的连接。
 * 该类使用静态代码块初始化连接工厂，并提供一个静态方法来获取 RabbitMQ 连接。
 */
public class RabbitUtils {

    // 静态的 ConnectionFactory 实例，用于创建 RabbitMQ 连接
    private static ConnectionFactory factory = new ConnectionFactory();

    static {
        // 设置 RabbitMQ 服务器的主机地址
        factory.setHost("192.168.1.8");
        // 设置 RabbitMQ 服务器的端口号，5672 是 RabbitMQ 的默认端口号
        factory.setPort(5672);
        // 设置连接 RabbitMQ 服务器的用户名
        factory.setUsername("liang");
        // 设置连接 RabbitMQ 服务器的密码
        factory.setPassword("liang1997");
        // 设置连接 RabbitMQ 服务器的虚拟主机
        factory.setVirtualHost("/");
    }

    /**
     * 获取 RabbitMQ 的连接。
     * 该方法使用静态初始化的 ConnectionFactory 创建一个新的连接。
     *
     * @return 一个 RabbitMQ 的连接对象
     */
    public static Connection getConnection() throws IOException, TimeoutException {
        // 使用 ConnectionFactory 创建一个新的连接
            Connection connection = factory.newConnection();
            return connection;
    }
}
